Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

4 Stron V  < 1 2 3 4 >  
Reply to this topicStart new topic
> [Klasa] Scout 1.8.0, Detekcja OS, Browsera i geolokalizacja
Balas
post
Post #21





Grupa: Zarejestrowani
Postów: 347
Pomógł: 0
Dołączył: 27.08.2005
Skąd: Inowrocław

Ostrzeżenie: (0%)
-----


Cytat


Czy to czasem tego nie wyjasnia (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Ten post edytował OnE.Killer 2.03.2006, 17:00:56
Go to the top of the page
+Quote Post
Bastion
post
Post #22





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Cytat(xarr)
Pisane to bylo jakies 10 mc temu i dzisiaj rowniez nie jestem przekonany, co do poprawnego rozbicia tego na tyle klas, ot chociazby Identification, ktora odpowiada tylko ze stwierdzenie, czy mamy do czynienia z botem, czy userem, ew. czy bardziej prawdopodobne jest, ze jest to bot/user. Nie jestem tez pewny, czy w ogole dobrym pomyslem jest tutaj dziedziczenie, a przynajmniej w takiej postaci. Co sadzicie?


Moim zdaniem rozbicie ma sens przy oddzieleniu elementow ze soba nie powiazanych, czyli jedna klasa zajmujaca sie useragentem i wyciaganych na jego postawie informacji, a druga operujaca na IP. Wtedy jakby dwie klasy moga dziala niezaleznie jedna od drugiej.

Cytat(xarr)
Uwazam, ze zbieranie tak bardzo szczegolowych informacji o parametrach wykrytej komorki (wyswietlacz) jest zbedne. Do niczego Ci sie to raczej nie przyda. Informacja, ze jest to komorka styka, a jak jeszcze dorzucisz jaki model (Nokia 6210) to juz "swiat i ludzie"


Wykrywanie bardziej szczegolywch parametorw ma snes mysle, moze z wyswietlaczem nie byl dobry przyklad, ale np sprawdzenie co potrafi obsluzyc zainstalowany j2me lub markup?
Kod
    j2me:
      cldc_10: true
      cldc_20: false
      midp_10: true
      midp_20: false
    markup:
      wml_1_1: true
      wml_1_2: false
      wml_1_3: false
      wmlscript_1_0: true
      wmlscript_1_1: true
      wmlscript_1_2: false
      wmlscript_1_3: false


Cytat(xarr)
Ot jakies pluginy, enabled js, itd. Za to wprawdzie glownie odpowiadac bedzie javascript (bo get_browser pokazuje tylko mozliwosci browsera), ale moze bedziesz mial checi i uda Ci sie cos fajnego znalezc/napisac. Przyznam sie, ze ja kiedys poleglem na tym.

Scout rozpoznaje jedynie modyfikacje IE jak Maxhton (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Co do sprawdzania JS/Flasha etc to bardzo dobry pomysl uzbroic w to kolejny relase.


Cytat(sztos)
Chyba nie zgadza sie lokalizacja. Jestem neozdrajcą z Wałbrzycha, więc moja centrala to chyba Wrocław, ale moge się mylić.

Niestety Scout operuje na wpisach bazy danych OpenGEO - jesl Twoj IP jest tam tak wpisany to tak niestety jest wyswietlnay - to akurat nie jest blad dzialania skryptu.

Cytat(sztos)
Ale czemu Vista? Mam win2003, nLitniętego ale nadal 2003. I czemu IE 7? Korzystam z Firefoxa z mnóstwem swietnych pluginów, chociaż owszem mam zainstalowane IE 7 2nd Preview. czy to może dlatego że win2003 + IE 7 w chwili obecnej jest teoretycznie niemożliwe i trzeba sie w podmianę plików bawić, o refleksie nie wspominajac?
No i ten poznań winksmiley.jpg

Odp. prosta (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) poniewaz w trybie wymuszonym - podaje sie jaki useragent ma byc spraswoany, w przykladzie wymusilem 'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)" - co jest przetlumaczone poprawnie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Vomit
post
Post #23





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

Ostrzeżenie: (0%)
-----


Mozesz jeszcze dodac z jakiego panstwa:

http://ip-to-country.directi.com/

PS. Jak to jest z tymi adresami IP? Jest jakas zasada, reguła czy cokolwiek, wg. ktorych IP zostaja przydzielone? Bo mi wydaje sie, ze jest jeden wielki smietnik.

Ten post edytował Vomit 2.03.2006, 18:09:24
Go to the top of the page
+Quote Post
Bastion
post
Post #24





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


regula jakas jest, ale nie zawsze sie sprawdza. czesto provider ma siedzibe w jedym miejscu a przypisuje ip sieciom w innych... wiec lipa
Go to the top of the page
+Quote Post
xarr
post
Post #25





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 5.12.2004

Ostrzeżenie: (0%)
-----


Klase tworzysz, zeby rozwiazywala konkretny problem i tylko go. Klasa user zbiera podstawowe informacje o wszystkim, co moze wlisc do Ciebie na www. Cokolwiek nie wejdzie ma jakies IP i agent`a (zazwyczaj). Chociaz sa to rozne info to jednak sluza do tego samego, identyfikacji. I nastepnie w zaleznosci od tego, co to jest gromadzisz wiecej info. Jesli jest to bot, to nie potrzeba Ci wykrywania zadnych browserow czy innych OSow, a conajwyzej nazwe tego bota i czy jest to jakis spambot, robot indeksujacy, czy inne cudo. Jesli user, to nie jest Ci potrzebna metoda zwracajaca nazwe bota, albo pobierajaca nazwe z bazy, ale info o browserze i osie, przykladowo. Stad u mnie jest to tak rozbite na dwie klasy i w zaleznosci od tego, co zwroci Identification ladujemy odpowiednia klase i pobieramy interesujace nas info.
Go to the top of the page
+Quote Post
Bastion
post
Post #26





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Witam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nowy Scout 1.3.0 został wydany, co nowego :

Kod
- nowe funkcje odczytywania parametrow ekranu : js() screen()
- nowe funkcje geolokalizacji panstwa : is_country(), country()
- przy rozpoznaniu telefonu, sprawdzany tez jest system operacyjny w telefonie
- nowe telefony : Samsung SGH-xxx, Samsung SPH-xxx, Sanyo MM-xxx, Sanyo Sxxx,
   Sanyo SCP-xxx, Motorola MPxxxx, Motorola Axxxx, BlackBerry xxxx
- zmiana metody wykrywania telefonu komorkowego, sprawdzane gdy systemem jest
   Windows CE lub SymbianOS, lub gdy nie wykryto zadnego innego telefonu ani bota
- poprawka przy wykrywaniu systemu Windowsa CE oraz SymbianOS
- poprwienie nazwy modelu przy wykrywaniu telefonow Samsunga, nazwa SGHodel
   rozbijana jest na rzeczywista nazwa SGH-model / SPH-model
- oddzielenie bazy danych ScoutDB od bazy


Do dzialania potrzeba sciagnac sama klase oraz baze danych ScoutDB. Obie paczki dostepne pod adresem : http://www.vertis.com.pl/

Nowy example04.php - wykrywanie telefonu komórkowego oraz systemu operacyjnego :
LiveDemo : http://www.vertis.com.pl/demo/scout-1.3/ex...s/example04.php
  1. <?php
  2.  
  3. /*
  4.  Przyklad 4
  5.  Przykład wykrywania telefonu
  6. */
  7.  
  8. require_once('../libs/class5.scout.php');
  9.  
  10. $scout = new Scout;
  11.  
  12. // $scout->set_useragent('MOT-V300/0B.08.74R MIB/2.2 Profile/MIDP-2.0 Configuration/CLDC-1.0');
  13. // $scout -> set_useragent('MOT-MPx220/1.280 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)');
  14. $scout -> set_useragent('Nokia6682/2.0 (3.01.1) SymbianOS/8.0 Series60/2.6 Profile/MIDP-2.0 Configuration/CLDC-1.1');
  15. print '<b>Podstawowe informacje :</b>';
  16. print '<br />User UserAgent : '.$scout->get_useragent();
  17.  
  18. if ($scout->is_mobile())
  19. {
  20. print '<br /><br /><b>Telefon : </b>';
  21. print '<br />Producent : '.  $scout->mobile('vendor');
  22. print '<br />Model: '. $scout->mobile('model');
  23. print '<br />System operacyjny : '. $scout->mobile('os');
  24. print '<br />Pełna nazwa: '. $scout->mobile();
  25. } else
  26. {
  27.  print '<br />OS:'.$scout->os().'<br />';
  28.  print 'BR:'.$scout->browser();
  29. }
  30.  
  31. ?>


Nowy example05.php - Rozpoznanie panstwa na podstawie IP oraz geolokalizacja z zanznaczeniem punktu na mapie Polski.
LiveDemo : http://www.vertis.com.pl/demo/scout-1.3/ex...s/example05.php
Jesli Twoj adres IP nie bedzie w bazie danych, a chcesz zobaczyc przyklad geolokalizacji na mapie, uzyj trybu wymuszonego : http://www.vertis.com.pl/demo/scout-1.3/ex...xample05.php?ip
Uwagi : Paczka zawiera dwa pliki PNG, za pomoca ktorych stworzysz wlasna mape w odpowiadajacej ci kolorystyce i wymiarach.
  1. <?php
  2.  
  3. /*
  4.  Przyklad 5
  5.  Geolokalizacja adresu IP na terenie Polski
  6. */
  7.  
  8. require_once('../libs/class5.scout_geo.php');
  9.  
  10. $scout = new ScoutGEO;
  11.  
  12. /* Możliwe jest wskazanie klasie adresu IP do zlokalizowania */
  13. if (isset($_GET['ip']))
  14. {
  15. $scout -> set_ip('212.126.1.2');
  16. }
  17. /* w przeciwnym wypadku IP zostanie automatycznie pobrany ze zmiennej */
  18.  
  19. print '<b>Podstawowe informacje :</b>';
  20. print '<br />User IP : '.  $scout->get_ip();
  21. print '<br />User Proxy : '. $scout->get_proxy();
  22.  
  23. print '<br /><br /><b>Państwo : </b>';
  24. if ($scout->is_country())
  25. {
  26. print '<br />Państwo : '.  $scout->country('name');
  27. print '<br />Symbol : '. $scout->country('symbol');
  28. print '<br />Pełna nazwa : '.  $scout->country();
  29. } else
  30. {
  31. print '<br />... brak adresu w bazie danych';
  32. }
  33.  
  34. print '<br /><br /><b>Geolokalizacja : </b>';
  35. if ($scout->is_geo())
  36. {
  37. print '<br />(BL) North : '. $scout->geo('n');
  38. print '<br />(BL) East : '.  $scout->geo('e');
  39. print '<br />(XY) X : '. $scout->geo('x');
  40. print '<br />(XY) Y : '. $scout->geo('y');
  41. print '<br />Miasto : '. $scout->geo('town');
  42. print '<br />Województwo : '.  $scout->geo('province');
  43.  
  44. /* Dopuszczalne rozmiary mapy : 600x554, 500x462, 400x369, 300x277 */
  45. /* Jak tworzyc wlasne mapy przeczytasz w pliku FAQ */
  46.  
  47. if ($scout->set_calibrate(500,462))
  48. {
  49. print '<br /><br /><img src="mapa.php?'.$scout->point('url').'" />';
  50. }
  51. } else
  52. {
  53. print '<br />... brak adresu w bazie danych';
  54. }
  55.  
  56. ?>


i na koniec example06 : detekcja rozdzielczosci i glebi kolorow
LiveDemo : http://www.vertis.com.pl/demo/scout-1.3/ex...s/example06.php
  1. <?php
  2.  
  3. /*
  4.  Przyklad 6
  5.  Detekcja parametrow ekranu za pomoca JS
  6. */
  7.  
  8. require_once('../libs/class5.scout.php');
  9.  
  10. $scout = new Scout;
  11.  
  12. // Jesli obawiamy sie ze wylaczone Cookies moze zapetlic skrypt
  13. if (!isset($_COOKIE['scout_width']))
  14. {
  15. // $scout->js('redirect.php'); // przekierowanie na redirect.php
  16. // $scout->js('no');  // bez przekierowania
  17. $scout->js(); // domyslnie php SELF
  18. }
  19.  
  20. print '<b>Ekran : </b>';
  21. print '<br />Szerokosc : '.  $scout->screen('width');
  22. print '<br />Wysokosc : '. $scout->screen('height');
  23. print '<br />Kolory : '. $scout->screen('depth');
  24. print '<br />Pełna : '.  $scout->screen();
  25.  
  26. ?>


HaveU fun (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mike
post
Post #27





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Ostatnio (czyt: 10 min. temu) postanowiłem dopisać sobie do Symfony klasę użytkownika, który ma już określone pochodzenie.
Przydałoby mi się do uniwersalnego zapisu liczb i dat.
Geolokalizacja jak się patrzy.

Pomyślałem że Scout by się nadał, ale jednak nie. Zauważyłem, że zwraca on dane w mało przydatny sposób.

I tu moja propozycja.
Przydałoby się żeby podawał jeszcze dene w ten sposób: nl_NL, pl_PL, en_US, ...

Przydałoby się do setlocale() i mi do Symfony (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) do klasy użytkownika:
  1. <?php
  2.  
  3. $this->getUser()->setCulture( 'en_US' );
  4.  
  5. ?>
Go to the top of the page
+Quote Post
Vomit
post
Post #28





Grupa: Zarejestrowani
Postów: 122
Pomógł: 0
Dołączył: 23.01.2006

Ostrzeżenie: (0%)
-----


I przy okazji najlepiej funkcja setlocale().

$scout -> setLocale();

I juz mamy ustawione automatycznie.
Go to the top of the page
+Quote Post
Bastion
post
Post #29





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Mowicie i macie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Scout 1.5 relased :
Kod
- zmiana licencji na GPL ( zobacz plik LICENSE )
- angielskie nazwy państw 'en_names' w funkcji country()
- pobieranie locales danego panstwa 'locale' lub 'array_locale' w funkcji country()
- zmieniono indeks 'autc' na 'array_utc' w funkcji country()
- usnięto błedy :
   o) bug001 : pokazywanie czasu UTC+-X gdy liczba jest ujemna


Demo : http://www.vertis.com.pl/demo/scout/examples/example05.php

I mały przykładzik dla IP 64.202.189.183 (USA) :
http://www.vertis.com.pl/demo/scout/exampl...=64.202.189.183

  1. <?php
  2.  
  3. /*
  4.  Przyklad 5
  5.  Geolokalizacja adresu IP na terenie Polski
  6. */
  7.  
  8. require_once('../libs/class5.scout_geo.php');
  9.  
  10. $scout = new ScoutGEO;
  11.  
  12. /* Możliwe jest wskazanie klasie adresu IP do zlokalizowania */
  13. if (isset($_GET['ip']))
  14. {
  15. $scout -> set_ip($_GET['ip']);
  16. }
  17. /* w przeciwnym wypadku IP zostanie automatycznie pobrany ze zmiennej */
  18.  
  19. print '<b>Podstawowe informacje :</b>';
  20. print '<br />User IP : '.  $scout->get_ip();
  21. print '<br />User Proxy : '. $scout->get_proxy();
  22. print '<br />User ID : '.  $scout->get_uid();
  23.  
  24. print '<br /><br /><b>Państwo : </b>';
  25. if ($scout->is_country())
  26. {
  27. print '<br />Flaga : <img src="../libs/flags/'.$scout->country('flag').'">';
  28. print '<br />Państwo : '. $scout->country('name');
  29. print '<br />Państwo : '.  $scout->country('en_name');
  30. print '<br />Symbol : '.  $scout->country('symbol');
  31. print '<br />Locale : '.  $scout->country('locale');
  32. print '<br />Locale (array) : ';  print_r($scout->country('array_locale'));
  33. print '<br />Pełna nazwa : '. $scout->country();
  34. print '<br />Strefa czasowa : '.  $scout->country('utc');
  35. print '<br />Strefa czasowa (array) : '; print_r($scout->country('array_utc'));
  36.  
  37. $saving = ($scout->country('saving')) ? 'Tak' : 'Nie';
  38.  
  39. print '<br />Obowiązue czas zimowy/letni : '. $saving;
  40.  
  41. } else
  42. {
  43. print '<br />... brak adresu w bazie danych';
  44. }
  45.  
  46. print '<br /><br /><b>Geolokalizacja : </b>';
  47. if ($scout->is_geo())
  48. {
  49. print '<br />(BL) North : '. $scout->geo('n');
  50. print '<br />(BL) East : '.  $scout->geo('e');
  51. print '<br />(XY) X : '. $scout->geo('x');
  52. print '<br />(XY) Y : '. $scout->geo('y');
  53. print '<br />Miasto : '. $scout->geo('town');
  54. print '<br />Województwo : '.  $scout->geo('province');
  55.  
  56. /* Dopuszczalne rozmiary mapy : 600x554, 500x462, 400x369, 300x277, 240x222, 200x
    185, 180x166 */
  57. /* Jak tworzyc wlasne mapy przeczytasz w pliku FAQ */
  58.  
  59. if ($scout->set_calibrate(500,462))
  60. {
  61. print '<br />Punkt : '.  $scout->point('url');
  62. print '<br /><br /><img src="mapa.php?'.$scout->point('url').'" />';
  63. }
  64. } else
  65. {
  66. print '<br />... brak adresu w bazie danych';
  67. }
  68.  
  69. ?>


Ten post edytował Bastion 10.05.2006, 13:02:26
Go to the top of the page
+Quote Post
oldek bis
post
Post #30





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 1.06.2006

Ostrzeżenie: (0%)
-----


Cytat(Bastion @ 25.02.2006, 15:39 ) *
z www.opengeo.pl

Czy znacie zagraniczne odpowiedniki tej inicjatywy?

Cytat(Bastion @ 25.02.2006, 15:39 ) *
- niestety ich CSV to 300MB wiec trzeba bylo uszczuplic,

Może nie trzeba uszczuplać a zlikwidować redundancje od których w tych danych aż huczy... No ale darowanemu koniowi w zęby sie nie patrzy. Teaz by na tym koniu można było jeździć to należałobyby go podkuć, osiodłać i uzdę założyć, czyli znormalizować przez podział na tabele... Zanim się do tego zabiorę lepiej zapytam: czy może ktoś to juz zrobił?
---------dopisek
Nie czekając na odpowiedź zabrałem sie do tego groźnie wyglądającego CSV, okazało się że wśród circa 3,6 mln wpisów jest tylko 511 różnych miejscowości (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) więc nie taki diabeł straszny jak go malują (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)

Ten post edytował oldek bis 5.06.2006, 17:17:09
Go to the top of the page
+Quote Post
Bastion
post
Post #31





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


W Scout 1.5.0 , zredukowana baza danych CSV opengeo zajumue ~300kB z dodanymi wspolrzednymi geografcznymi miast w formacie BL i XY. Obecnie pracuje nad kolejna wersja obslugujaca moj nowy format bazy adresow IP (ScoutDB v3). Aktualnie rozmiary baz w Class5.Scout to :

43kB / poland.sdb

oraz

451kB / world.sdb (ip-to-country)
Go to the top of the page
+Quote Post
bigZbig
post
Post #32





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


@Bastion fajne to - taki wstep do jakiegosz szerszego systemu statystyk.
Go to the top of the page
+Quote Post
Bastion
post
Post #33





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Fajne bedzie Scout 1.6 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) baza danych nie bedzie poszatkowana na setki malych plikow jak w 1.5.
W nowej wersji beda tylko dwa pliki, jeden polski drugi na swiat. Zajmuja mniej niz obecenie, zawieraja
wiecej danych oraz wyszukiwanie konkretnego IP jest szybsze.

Tez myslalem o jakis wlasnych ststystykach, ale z tego co kiedys bylo wiadomo, podobno Zajec takie
robi. Jak skoncze FSP2 to moze sie wezme za jakies wlasne stasty.
Go to the top of the page
+Quote Post
bigZbig
post
Post #34





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


A moze znajdz kogos do wspolpracy. Ty sie zajmiesz sposobem uzyskiwania danych o userze, a ktos inny np. opracuje sposob ich gromadzenia i przetwarzania
Go to the top of the page
+Quote Post
Bastion
post
Post #35





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


(IMG:http://forum.php.pl/style_emoticons/default/smile.gif) hum, bardzo ciekawy pomysl, ale jesli tak to ja juz swoja robote odwalilem wydajac Scouta. Jesli ktos przedemna nie zdeklaruje jej wykorzystania w takim systemie statystyk to pewnie zrobie to ja
Go to the top of the page
+Quote Post
Diablos
post
Post #36





Grupa: Zarejestrowani
Postów: 165
Pomógł: 6
Dołączył: 17.06.2005

Ostrzeżenie: (0%)
-----


Nie mialem okazji przegladac najnowszego Scouta, ale mam jeszcze takie pomysly.

W starszych wersjach, nazwy systemow, przegladarek, telefonow komorkowych, botów były "na sztywno" ustalone w klasach.

Dobrze by bylo aby poza bazami Geo byly takze oddzielne bazy wlasnie tych powyzszych. Kazdy user bez ingerencji w biblioteke bedzie mogl podmienic bazy lub dopisac jakies wlasne.
Go to the top of the page
+Quote Post
Bastion
post
Post #37





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Wersja 1.7.0 :

  1. * nowa struktura klas, do wszystkich klas odwołujemy się za pomocą klasy szefa Scout
  2. * nowa stała CLASS_CHARSET określająca wyjściową stronę kodową
  3. * nowa klasa ScoutReferer :
  4. o $obj->is_referer() - zwraca TRUE jeśli informacja jest dostępna
  5. o $obj->is_search() - zwraca TRUE jeśli wejście nastąpiło z wyszukiwarki
  6. o $obj->referer() - pobiera informacje o wejściu
  7. o $obj->referer_search() - pobiera informacje wyszukiwarce oraz zapytaniu
  8. + rozpoznawane : Google, WP, Interia, Onet, Altavista, MSN, Yahoo, Netsprint
  9. o $obj->set_referer() - ustawia własny HTTP_REFERER
  10. * nowe funkcje klasy ScoutGEO :
  11. o $obj->is_local_ip($ip) - czy podany IP jest adresem prywatnym
  12. o $obj->get_route_ip() - zwraca routowalny adres użytkownika
  13. * nowe funkcje klasy ScoutAgent :
  14. o $obj->is_os() - zwraca TRUE jeśli są dostępne informacje o systemie operacyjnym
  15. o $obj->is_browser() - zwraca TRUE jeśli są dostępne informacje o przeglądarce
  16. * dodano nowy język nazw państw : niemiecki
  17. * zmiana systemu i18n - pliki językowe klasy ScoutGEO w osobnych plikach
  18. * zoptymalizowany mechanizm wyszukiwania adresów IP
  19. * nowa metoda wyboru języka państw :
  20. o $obj->country(pl_name) - polski
  21. o $obj->country(en_name) - angielski
  22. o $obj->country(de_name) - niemiecki
  23. * usnięcie błędów E_NOTICE | E_STRICT oraz kilka mniejszych poprawek
  24. * dodano kilka definicji podsieci loklanych przy detekcji $obj->is_local_ip($ip)


Nowy example05 : KLIK DEMO
  1. <?php
  2.  
  3. /*
  4.  Przyklad 5
  5.  Geolokalizacja adresu IP na terenie Polski
  6. */
  7.  
  8. define('CLASS5_CHARSET', 'iso-8859-2');
  9.  
  10. require_once('../libs/class5.scout.php');
  11.  
  12. $scout = new Scout;
  13.  
  14. /* Możliwe jest wskazanie klasie adresu IP do zlokalizowania */
  15. if (isset($_GET['ip']))
  16. {
  17. $scout -> set_ip($_GET['ip']);
  18. }
  19. /* w przeciwnym wypadku IP zostanie automatycznie pobrany ze zmiennej */
  20.  
  21. print '<b>Podstawowe informacje :</b>';
  22. print '<br />User IP : '.  $scout->get_ip();
  23. print '<br />User Proxy : '. $scout->get_proxy();
  24. print '<br />Route IP : '. $scout->get_route_ip();
  25. print '<br />User ID : '.  $scout->get_uid();
  26.  
  27. print '<br /><br /><b>Państwo : </b>';
  28. if ($scout->is_country())
  29. {
  30. print '<br />Flaga : <img src="../libs/flags/'.$scout->country('flag').'">';
  31. print '<br />Państwo (pl) : '.  $scout->country('pl_name');
  32. print '<br />Państwo (en) : '.  $scout->country('en_name');
  33. print '<br />Państwo (de) : '.  $scout->country('de_name');
  34. print '<br />Symbol : '.  $scout->country('symbol');
  35. print '<br />Locale : '.  $scout->country('locale');
  36. print '<br />Locale (array) : ';  print_r($scout->country('array_locale'));
  37. print '<br />Pełna nazwa : '. $scout->country();
  38. print '<br />Strefa czasowa : '.  $scout->country('utc');
  39. print '<br />Strefa czasowa (array) : '; print_r($scout->country('array_utc'));
  40.  
  41. $saving = ($scout->country('saving')) ? 'Tak' : 'Nie';
  42.  
  43. print '<br />Obowiązue czas zimowy/letni : '. $saving;
  44.  
  45. } else
  46. {
  47. print '<br />... brak adresu w bazie danych';
  48. }
  49.  
  50. print '<br /><br /><b>Geolokalizacja : </b>';
  51. if ($scout->is_geo())
  52. {
  53. print '<br />(BL) North : '. $scout->geo('n');
  54. print '<br />(BL) East : '.  $scout->geo('e');
  55. print '<br />(XY) X : '. $scout->geo('x');
  56. print '<br />(XY) Y : '. $scout->geo('y');
  57. print '<br />Miasto : '. $scout->geo('town');
  58. print '<br />Powiat : '. $scout->geo('district');
  59. print '<br />Województwo : '.  $scout->geo('province');
  60.  
  61. /* Dopuszczalne rozmiary mapy : 600x554, 500x462, 400x369, 300x277, 240x222, 200x
    185, 180x166 */
  62. /* Jak tworzyc wlasne mapy przeczytasz w pliku FAQ */
  63.  
  64. if ($scout->set_calibrate(500,462))
  65. {
  66. print '<br />Punkt : '.  $scout->point('url');
  67. print '<br /><br /><img src="mapa.php?'.$scout->point('url').'" />';
  68. }
  69. } else
  70. {
  71. print '<br />... brak adresu w bazie danych';
  72. }
  73.  
  74. ?>


Nowa klasa ScoutReferer, example08.php : KLIK DEMO
  1. <?php
  2.  
  3. /*
  4.  Przyklad 8
  5.  Geolokalizacja adresu IP na terenie Polski
  6. */
  7.  
  8. define('CLASS5_CHARSET', 'iso-8859-2');
  9.  
  10. require_once('../libs/class5.scout.php');
  11.  
  12. $scout = new Scout();
  13.  
  14. $scout -> set_referer('http://www.google.pl/search?hl=pl&q=Zabawy+gimpem&btnG=Szukaj+w+Google&lr=');
  15.  
  16. if ($scout->is_search())
  17. {
  18. print '<br /> Silnik wyszukiwarki : '. $scout -> referer_search('engine');
  19. print '<br /> Szukana fraza : '. $scout -> referer_search('keyword');
  20. }
  21.  
  22. if ($scout->is_referer())
  23. {
  24. print '<br /> Host : '. $scout -> referer('host');
  25. print '<br /> URL : '. $scout -> referer('url');
  26. }
  27.  
  28. $ip = '192.168.5.100';
  29. if ($scout->is_local_ip($ip))
  30. {
  31. print '<br /> Podany adres należy do puli lokalnych adresów';
  32. }
  33.  
  34. ?>


Jak zwykle do pobrania z http://dl.vertis.com.pl/
Go to the top of the page
+Quote Post
Nightwalker
post
Post #38





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 5.02.2006
Skąd: Bytom

Ostrzeżenie: (10%)
X----


Cześć,

Jak wiesz integruje Scout'a z IPB, i napotkałem dziwny problem, mianowicie:

  1. <?php
  2. //-----------------------------------------
  3. // Geolokalizacja
  4. //-----------------------------------------
  5.  
  6. define('CLASS5_CHARSET', 'utf-8');
  7.  
  8. require_once(ROOT_PATH . 'sources/classes/scout/class5.scout.php');
  9.  
  10. $scout = new Scout;
  11.  
  12. $DB->simple_construct( array( 'select' => 'ip_address as ip',
  13. 'from'  => 'members',
  14. 'where' => "`name`='{$info['name']}'" ) );
  15. $DB->simple_exec();
  16.  
  17. $scout_ip = $DB->fetch_row();
  18.  
  19. $scout->set_ip($scout_ip['ip']);
  20.  
  21. if($scout->set_calibrate(500,462) && $scout->is_country())
  22. {
  23. $info['geo'] = $scout->point('url');
  24. }
  25. ?>


Wyciągam z bazy ip (w 'czystej' postaci tzn XXX.XXX.XXX.XXX), tyle tylko że w razie fiaska (Scout nie znajdzie w bazie takiego IP) operacja jest wykonywana nadal, a $scout->point('url'); zwraca:

Kod
x=546&y=-110


IP jest dobrze wyciągane z bazy (na 100%).

Pozdravki

Ten post edytował Nightwalker 23.06.2006, 21:16:43
Go to the top of the page
+Quote Post
Bastion
post
Post #39





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

Ostrzeżenie: (0%)
-----


Zmiany 1.8.0 :

Cytat
- cacheownia wyników zapytań country() oraz geo()
- nowa funkcja online_meter() pobierająca listę użytkowników online
- nowa funkcja online_info() pobierająca listę adresów IP przebywjących na stronie
- dodano detekcje przegladarki Flock
- optymalizacje w wyszukiwaniu informacji w bazach danych SDB


Przykład działania nowych funkcji : example10.php
Wynik : http://www.vertis.com.pl/demo/scout/examples/example10.php
  1. <?php
  2.  
  3. /*
  4.  Przyklad 10
  5. */
  6.  
  7. define('CLASS5_CHARSET', 'iso-8859-2');
  8.  
  9. require_once('../libs/class5.scout.php');
  10.  
  11. $scout = new Scout;
  12.  
  13. print 'Uzytkownicy online : '.$scout -> online_meter().'<br />';
  14. print 'Rozpoznani : ';
  15.  
  16. foreach($scout->online_info() as $ip)
  17. {
  18. $scout -> set_ip($ip);
  19. if ($scout->is_geo())
  20. {
  21.  print $scout->geo('town').', ';
  22. }
  23. }
  24.  
  25. echo '<br /><br /><img src="online.php">';
  26.  
  27. ?>
Go to the top of the page
+Quote Post
ikioloak
post
Post #40





Grupa: Zarejestrowani
Postów: 416
Pomógł: 0
Dołączył: 8.01.2004

Ostrzeżenie: (0%)
-----


W licencji klas Class5 czytam
Cytat
Od dnia 18 czerwca 2006, wszystkie klasy z rodziny Class5 są rozprowadzane na zasadzie licencji LGPL. Oznacza to, że klasy mogą być wykorzystane całkowicie za darmo także do użytku komercyjnego.


A download Scouta i innych mozliwy jest tylko po wyslaniu sms'a.. O co chodzi?
Go to the top of the page
+Quote Post

4 Stron V  < 1 2 3 4 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 04:55